package com.tsy.server.component.oss.service;

import com.dji.sdk.cloudapi.storage.CredentialsToken;
import com.dji.sdk.cloudapi.storage.OssTypeEnum;

import java.io.InputStream;
import java.net.URL;

/**
 * @author sean
 * @version 0.3
 * @date 2021/12/23
 */
public interface IOssService {

    OssTypeEnum getOssType();

    /**
     * 获取临时凭证。
     * @return
     */
    CredentialsToken getCredentials();

    /**
     * 根据存储桶与对象名获取对象地址。
     * @param bucket    存储桶名称
     * @param objectKey 对象名称
     * @return 下载链接
     */
    URL getObjectUrl(String bucket, String objectKey);

    /**
     * 删除存储桶中的对象。
     * @param bucket 存储桶名称
     * @param objectKey 对象名称
     * @return
     */
    Boolean deleteObject(String bucket, String objectKey);

    /**
     * 获取对象内容。
     * @param bucket 存储桶名称
     * @param objectKey 对象名称
     * @return
     */
    InputStream getObject(String bucket, String objectKey);

    void putObject(String bucket, String objectKey, InputStream input);

    void createClient();
}
